The present invention relates to a device for generating various sound types by reading sound waveforms from a memory, and in particular, to a device for changing the sound frequency during reading of the sound waveform and subjecting the waveform data to digital to analog conversion and supplying the converted data to an electrical acoustic converter and a method for reading the waveform data from the memory.
The musical tone generating circuit of the above mentioned parent application, as shown in FIG. 1, contains a scale ROM 203 containing a plurality of frequency dividing ratios stored at the addresses within the scale ROM 203. The addresses within scale ROM 203 are selected in accordance with an input signal S having a plurality of bits whose contents change in accordance with the length of the musical tone and sound pitch. A programmable counter 201 receives a frequency signal input f.sub.0 and divides the frequency in accordance with a frequency division ratio output by scale ROM 203. By selecting different addresses within scale ROM 203 programmable counter 201 variably divides frequency signal f.sub.0. Therefore, programmable counter 201 is adapted to variably divide the predetermined frequency in accordance with a frequency dividing ratio output by scale ROM 203. Accordingly, in response to signal f.sub.0, program counter 201 outputs a frequency and period, (period being equal to the 1/frequency), corresponding to the sound pitch for a duration corresponding to the sound length.
A waveform ROM 204 stores sound waveform data as N data points. The sound waveform differs in accordance with the tone, such as a violin tone, or a guitar tone. The sound waveform data is preprogrammed in waveform ROM 204 in accordance with the future use of the musical generator and the user's preferences. A counter 202 receives the output from program counter 201 (f.sub.A) and counts to a number N. Counter 202 counts N pulses causing counter 202 to read out N addresses from waveform ROM 204 causing the entire waveform stored in ROM 204 to be output to a digital to analog ("D/A") convertor 205. The period for reading one waveform is one period corresponding to the sound pitch. A single waveform is repeatedly read, thereby making it possible to obtain a frequency corresponding to the sound pitch.
Accordingly, in the above musical note generator an S which designates a musical interval. The sound waveform is repeatedly produced by using the frequency of that sound waveform.
In the above musical tone generator, waveform data is stored in ROM and the data is read out at a predetermined repeated frequency. The sound quality of a musical tone produced from waveform data in a ROM changes in accordance with the number of bits in to which the waveform is divided, i.e. divisions along the time axis and in its direction of the amplitude of the waveform as graphed (i.e. the magnitude of resolution). If attention is to be focused on the resolution of the time axis, to increase this resolution in the conventional art it becomes necessary to increase the original frequency by a corresponding margin, i.e. increase the frequency f.sub.0 input to program counter 201. By way of example, if the period for reading a single sound waveform is divided into thirty two equal parts along the time axis to obtain an output of 1,024 Hz, the minimum original frequency f.sub.0 becomes 32,768 Hz. If vibratos of .+-.1% are added to the 1,024 Hz output, an original vibration and a program counter having a resolution of 10 Hz becomes necessary. The original vibration f.sub.0 satisfies the following formula: ##EQU1## where f.sub.0 is an original predetermined frequency and n is a maximum frequency of the program counter. Utilizing this formula, if n=128, then f.sub.0 =5.2 MHz.
Accordingly, the above musical tone generator suffers from the disadvantage that it becomes necessary to set a maximum divided frequency at a cumbersomely large level. This allows the frequency dividing ratio data for dividing such a high frequency down to a frequency in which 1,024 Hz is shifted by .+-.1% to be stored in scale ROM 203 and allows programmable counter 201 to effect fine frequency division down to 1,024 Hz.+-.1%. If such a high original frequency such as 5.2 MHz is used, it becomes difficult to incorporate or attach a stable CR oscillator or the like in or outside an integrated circuit. Furthermore, because it becomes necessary to increase the frequency dividing capacity of the program counter, the circuit configuration of the program counter becomes unduly large. Because the oscillation frequency is high, power consumption due to the oscillator and large program counter increases. Accordingly, it is desired to provide a musical tone generator which overcomes the shortcomings of the above musical generator by providing a device and method for reading a stored waveform allowing for vibrato without necessitating an unduly large initial frequency.